package com.github.catvod.spider;

import android.content.Context;
import com.github.catvod.crawler.Spider;
import com.github.catvod.net.OkHttp;

import java.util.HashMap;
import java.util.List;


/**
 * @author wenyou7
 * 文又七远程爬取，用于破解各种反爬问题，远程可能是selenium或者是rpa爬取。
 * 配合magic-api接口 ，修改维护无需编译打包，使java爬虫更加灵活开放。
 */
public class WenYou7 extends Spider {
    private String siteUrl;

    /**
     * 爬虫代码初始化
     *
     * @param context 上下文对象
     * @param extend  配置文件的 ext 参数
     */
    @Override
    public void init(Context context, String extend) throws Exception {
        super.init(context, extend);
        if (extend.endsWith("/")) {
            siteUrl = extend.substring(0, extend.lastIndexOf("/"));
        }
        Init.checkPermission();
    }

    /**
     * 首页内容
     */
    @Override
    public String homeContent(boolean filter) throws Exception {
        return OkHttp.string(siteUrl + "/homeContent");
    }

    /**
     * 分类页面
     *
     * @param tid    影片分类id值
     * @param pg     第几页
     * @param extend 筛选
     * @return 返回 json 字符串
     */
    @Override
    public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) throws Exception {
        String url = String.format(siteUrl + "/categoryContent?tid=%s&pg=%s", tid, pg);
        return OkHttp.string(url);
    }


    /**
     * 详情页
     */
    @Override
    public String detailContent(List<String> ids) throws Exception {
        return OkHttp.string(siteUrl + "/detailContent?id=" + ids.get(0));
    }

    /**
     * 搜索
     *
     * @param key 关键字/词
     */
    @Override
    public String searchContent(String key, boolean quick) throws Exception {
        String searchUrl = String.format(siteUrl + "/searchContent?key=%s", key);
        return OkHttp.string(searchUrl);
    }

    @Override
    public String playerContent(String flag, String playUrl, List<String> vipFlags) throws Exception {
        String contentUrl = String.format(siteUrl + "/playerContent?flag=%s&playUrl=%s", flag, playUrl);
        return OkHttp.string(contentUrl);
    }
}
